﻿namespace org.mayb.Fixtures.Parser
{
    // $ANTLR 3.1.2 /Users/marcel/Fixture.g 2009-03-26 11:11:00

    // The variable 'variable' is assigned but its value is never used.
#pragma warning disable 168, 219
    // Unreachable code detected.
#pragma warning disable 162

    using System;
    using Antlr.Runtime;
    using IList = System.Collections.IList;
    using ArrayList = System.Collections.ArrayList;
    using Stack = Antlr.Runtime.Collections.StackList;


    public partial class FixtureLexer : Lexer
    {
        public const int COMMA = 6;
        public const int LETTER = 22;
        public const int MINUS = 30;
        public const int STRING2_ESCAPE = 29;
        public const int PERCENT = 20;
        public const int IDENT = 7;
        public const int HASH = 19;
        public const int SLASH = 32;
        public const int STRING = 13;
        public const int COMMENT = 26;
        public const int DOLLAR = 21;
        public const int LBRACKET = 10;
        public const int DECIMAL = 17;
        public const int STRING_ESCAPE = 27;
        public const int WHITESPACE = 25;
        public const int LBRACE = 4;
        public const int RBRACE = 5;
        public const int INTEGER = 15;
        public const int EQUAL = 9;
        public const int ESCAPE_CHAR = 33;
        public const int EOF = -1;
        public const int DATE = 18;
        public const int REFERENCE = 12;
        public const int RBRACKET = 11;
        public const int SYMBOL = 23;
        public const int HEX_VALUE = 16;
        public const int COLON = 8;
        public const int HEX_PREFIX = 31;
        public const int DIGIT = 24;
        public const int STRING2 = 14;
        public const int AT = 28;

        // delegates
        // delegators

        public FixtureLexer()
        {
            InitializeCyclicDFAs();
        }
        public FixtureLexer(ICharStream input)
            : this(input, null)
        {
        }
        public FixtureLexer(ICharStream input, RecognizerSharedState state)
            : base(input, state)
        {
            InitializeCyclicDFAs();

        }

        override public string GrammarFileName
        {
            get { return "/Users/marcel/Fixture.g"; }
        }

        // $ANTLR start "REFERENCE"
        public void mREFERENCE() // throws RecognitionException [2]
        {
            try
            {
                int _type = REFERENCE;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:195:2: ( DOLLAR ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )* )
                // /Users/marcel/Fixture.g:195:4: DOLLAR ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )*
                {
                    mDOLLAR();
                    if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                    {
                        input.Consume();

                    }
                    else
                    {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        Recover(mse);
                        throw mse;
                    }

                    // /Users/marcel/Fixture.g:195:29: ( LETTER | DIGIT | SYMBOL )*
                    do
                    {
                        int alt1 = 2;
                        int LA1_0 = input.LA(1);

                        if (((LA1_0 >= '0' && LA1_0 <= '9') || (LA1_0 >= 'A' && LA1_0 <= 'Z') || LA1_0 == '_' || (LA1_0 >= 'a' && LA1_0 <= 'z')))
                        {
                            alt1 = 1;
                        }


                        switch (alt1)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:
                                {
                                    if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                                    {
                                        input.Consume();

                                    }
                                    else
                                    {
                                        MismatchedSetException mse = new MismatchedSetException(null, input);
                                        Recover(mse);
                                        throw mse;
                                    }


                                }
                                break;

                            default:
                                goto loop1;
                        }
                    } while (true);

                loop1:
                    ;	// Stops C# compiler whining that label 'loop1' has no statements


                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "REFERENCE"

        // $ANTLR start "IDENT"
        public void mIDENT() // throws RecognitionException [2]
        {
            try
            {
                int _type = IDENT;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:197:7: ( ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )* )
                // /Users/marcel/Fixture.g:197:9: ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )*
                {
                    if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                    {
                        input.Consume();

                    }
                    else
                    {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        Recover(mse);
                        throw mse;
                    }

                    // /Users/marcel/Fixture.g:197:27: ( LETTER | DIGIT | SYMBOL )*
                    do
                    {
                        int alt2 = 2;
                        int LA2_0 = input.LA(1);

                        if (((LA2_0 >= '0' && LA2_0 <= '9') || (LA2_0 >= 'A' && LA2_0 <= 'Z') || LA2_0 == '_' || (LA2_0 >= 'a' && LA2_0 <= 'z')))
                        {
                            alt2 = 1;
                        }


                        switch (alt2)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:
                                {
                                    if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                                    {
                                        input.Consume();

                                    }
                                    else
                                    {
                                        MismatchedSetException mse = new MismatchedSetException(null, input);
                                        Recover(mse);
                                        throw mse;
                                    }


                                }
                                break;

                            default:
                                goto loop2;
                        }
                    } while (true);

                loop2:
                    ;	// Stops C# compiler whining that label 'loop2' has no statements


                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "IDENT"

        // $ANTLR start "WHITESPACE"
        public void mWHITESPACE() // throws RecognitionException [2]
        {
            try
            {
                int _type = WHITESPACE;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:199:12: ( ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+ )
                // /Users/marcel/Fixture.g:199:15: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
                {
                    // /Users/marcel/Fixture.g:199:15: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
                    int cnt3 = 0;
                    do
                    {
                        int alt3 = 2;
                        int LA3_0 = input.LA(1);

                        if (((LA3_0 >= '\t' && LA3_0 <= '\n') || (LA3_0 >= '\f' && LA3_0 <= '\r') || LA3_0 == ' '))
                        {
                            alt3 = 1;
                        }


                        switch (alt3)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:
                                {
                                    if ((input.LA(1) >= '\t' && input.LA(1) <= '\n') || (input.LA(1) >= '\f' && input.LA(1) <= '\r') || input.LA(1) == ' ')
                                    {
                                        input.Consume();

                                    }
                                    else
                                    {
                                        MismatchedSetException mse = new MismatchedSetException(null, input);
                                        Recover(mse);
                                        throw mse;
                                    }


                                }
                                break;

                            default:
                                if (cnt3 >= 1) goto loop3;
                                EarlyExitException eee3 =
                                    new EarlyExitException(3, input);
                                throw eee3;
                        }
                        cnt3++;
                    } while (true);

                loop3:
                    ;	// Stops C# compiler whinging that label 'loop3' has no statements

                    _channel = HIDDEN;

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "WHITESPACE"

        // $ANTLR start "COMMENT"
        public void mCOMMENT() // throws RecognitionException [2]
        {
            try
            {
                int _type = COMMENT;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:201:9: ( '/*' ( . )* '*/' )
                // /Users/marcel/Fixture.g:201:11: '/*' ( . )* '*/'
                {
                    Match("/*");

                    // /Users/marcel/Fixture.g:201:16: ( . )*
                    do
                    {
                        int alt4 = 2;
                        int LA4_0 = input.LA(1);

                        if ((LA4_0 == '*'))
                        {
                            int LA4_1 = input.LA(2);

                            if ((LA4_1 == '/'))
                            {
                                alt4 = 2;
                            }
                            else if (((LA4_1 >= '\u0000' && LA4_1 <= '.') || (LA4_1 >= '0' && LA4_1 <= '\uFFFF')))
                            {
                                alt4 = 1;
                            }


                        }
                        else if (((LA4_0 >= '\u0000' && LA4_0 <= ')') || (LA4_0 >= '+' && LA4_0 <= '\uFFFF')))
                        {
                            alt4 = 1;
                        }


                        switch (alt4)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:201:17: .
                                {
                                    MatchAny();

                                }
                                break;

                            default:
                                goto loop4;
                        }
                    } while (true);

                loop4:
                    ;	// Stops C# compiler whining that label 'loop4' has no statements

                    Match("*/");

                    _channel = HIDDEN;

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "COMMENT"

        // $ANTLR start "STRING"
        public void mSTRING() // throws RecognitionException [2]
        {
            try
            {
                int _type = STRING;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:203:8: ( '\"' ( STRING_ESCAPE | ~ ( '\"' | '\\n' ) )* '\"' )
                // /Users/marcel/Fixture.g:203:11: '\"' ( STRING_ESCAPE | ~ ( '\"' | '\\n' ) )* '\"'
                {
                    Match('\"');
                    // /Users/marcel/Fixture.g:203:15: ( STRING_ESCAPE | ~ ( '\"' | '\\n' ) )*
                    do
                    {
                        int alt5 = 3;
                        int LA5_0 = input.LA(1);

                        if ((LA5_0 == '\\'))
                        {
                            int LA5_2 = input.LA(2);

                            if ((LA5_2 == '\"'))
                            {
                                int LA5_4 = input.LA(3);

                                if (((LA5_4 >= '\u0000' && LA5_4 <= '\t') || (LA5_4 >= '\u000B' && LA5_4 <= '\uFFFF')))
                                {
                                    alt5 = 1;
                                }

                                else
                                {
                                    alt5 = 2;
                                }

                            }
                            else if ((LA5_2 == '\\'))
                            {
                                alt5 = 1;
                            }
                            else if ((LA5_2 == 'n' || LA5_2 == 'r' || LA5_2 == 't'))
                            {
                                alt5 = 1;
                            }
                            else if (((LA5_2 >= '\u0000' && LA5_2 <= '\t') || (LA5_2 >= '\u000B' && LA5_2 <= '!') || (LA5_2 >= '#' && LA5_2 <= '[') || (LA5_2 >= ']' && LA5_2 <= 'm') || (LA5_2 >= 'o' && LA5_2 <= 'q') || LA5_2 == 's' || (LA5_2 >= 'u' && LA5_2 <= '\uFFFF')))
                            {
                                alt5 = 2;
                            }


                        }
                        else if (((LA5_0 >= '\u0000' && LA5_0 <= '\t') || (LA5_0 >= '\u000B' && LA5_0 <= '!') || (LA5_0 >= '#' && LA5_0 <= '[') || (LA5_0 >= ']' && LA5_0 <= '\uFFFF')))
                        {
                            alt5 = 2;
                        }


                        switch (alt5)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:203:17: STRING_ESCAPE
                                {
                                    mSTRING_ESCAPE();

                                }
                                break;
                            case 2:
                                // /Users/marcel/Fixture.g:203:33: ~ ( '\"' | '\\n' )
                                {
                                    if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t') || (input.LA(1) >= '\u000B' && input.LA(1) <= '!') || (input.LA(1) >= '#' && input.LA(1) <= '\uFFFF'))
                                    {
                                        input.Consume();

                                    }
                                    else
                                    {
                                        MismatchedSetException mse = new MismatchedSetException(null, input);
                                        Recover(mse);
                                        throw mse;
                                    }


                                }
                                break;

                            default:
                                goto loop5;
                        }
                    } while (true);

                loop5:
                    ;	// Stops C# compiler whining that label 'loop5' has no statements

                    Match('\"');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "STRING"

        // $ANTLR start "STRING2"
        public void mSTRING2() // throws RecognitionException [2]
        {
            try
            {
                int _type = STRING2;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:205:9: ( AT LBRACE ( STRING2_ESCAPE | ~ ( '}' | '{' ) )* RBRACE )
                // /Users/marcel/Fixture.g:205:12: AT LBRACE ( STRING2_ESCAPE | ~ ( '}' | '{' ) )* RBRACE
                {
                    mAT();
                    mLBRACE();
                    // /Users/marcel/Fixture.g:205:22: ( STRING2_ESCAPE | ~ ( '}' | '{' ) )*
                    do
                    {
                        int alt6 = 3;
                        int LA6_0 = input.LA(1);

                        if ((LA6_0 == '\\'))
                        {
                            int LA6_2 = input.LA(2);

                            if ((LA6_2 == '}'))
                            {
                                int LA6_4 = input.LA(3);

                                if (((LA6_4 >= '\u0000' && LA6_4 <= 'z') || (LA6_4 >= '|' && LA6_4 <= '\uFFFF')))
                                {
                                    alt6 = 1;
                                }

                                else
                                {
                                    alt6 = 2;
                                }

                            }
                            else if ((LA6_2 == '\\'))
                            {
                                alt6 = 1;
                            }
                            else if ((LA6_2 == 'n' || LA6_2 == 'r' || LA6_2 == 't' || LA6_2 == '{'))
                            {
                                alt6 = 1;
                            }
                            else if (((LA6_2 >= '\u0000' && LA6_2 <= '[') || (LA6_2 >= ']' && LA6_2 <= 'm') || (LA6_2 >= 'o' && LA6_2 <= 'q') || LA6_2 == 's' || (LA6_2 >= 'u' && LA6_2 <= 'z') || LA6_2 == '|' || (LA6_2 >= '~' && LA6_2 <= '\uFFFF')))
                            {
                                alt6 = 2;
                            }


                        }
                        else if (((LA6_0 >= '\u0000' && LA6_0 <= '[') || (LA6_0 >= ']' && LA6_0 <= 'z') || LA6_0 == '|' || (LA6_0 >= '~' && LA6_0 <= '\uFFFF')))
                        {
                            alt6 = 2;
                        }


                        switch (alt6)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:205:24: STRING2_ESCAPE
                                {
                                    mSTRING2_ESCAPE();

                                }
                                break;
                            case 2:
                                // /Users/marcel/Fixture.g:205:41: ~ ( '}' | '{' )
                                {
                                    if ((input.LA(1) >= '\u0000' && input.LA(1) <= 'z') || input.LA(1) == '|' || (input.LA(1) >= '~' && input.LA(1) <= '\uFFFF'))
                                    {
                                        input.Consume();

                                    }
                                    else
                                    {
                                        MismatchedSetException mse = new MismatchedSetException(null, input);
                                        Recover(mse);
                                        throw mse;
                                    }


                                }
                                break;

                            default:
                                goto loop6;
                        }
                    } while (true);

                loop6:
                    ;	// Stops C# compiler whining that label 'loop6' has no statements

                    mRBRACE();

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "STRING2"

        // $ANTLR start "INTEGER"
        public void mINTEGER() // throws RecognitionException [2]
        {
            try
            {
                int _type = INTEGER;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:207:9: ( ( MINUS )? ( DIGIT )* )
                // /Users/marcel/Fixture.g:207:11: ( MINUS )? ( DIGIT )*
                {
                    // /Users/marcel/Fixture.g:207:11: ( MINUS )?
                    int alt7 = 2;
                    int LA7_0 = input.LA(1);

                    if ((LA7_0 == '-'))
                    {
                        alt7 = 1;
                    }
                    switch (alt7)
                    {
                        case 1:
                            // /Users/marcel/Fixture.g:207:12: MINUS
                            {
                                mMINUS();

                            }
                            break;

                    }

                    // /Users/marcel/Fixture.g:207:20: ( DIGIT )*
                    do
                    {
                        int alt8 = 2;
                        int LA8_0 = input.LA(1);

                        if (((LA8_0 >= '0' && LA8_0 <= '9')))
                        {
                            alt8 = 1;
                        }


                        switch (alt8)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:207:20: DIGIT
                                {
                                    mDIGIT();

                                }
                                break;

                            default:
                                goto loop8;
                        }
                    } while (true);

                loop8:
                    ;	// Stops C# compiler whining that label 'loop8' has no statements


                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "INTEGER"

        // $ANTLR start "DECIMAL"
        public void mDECIMAL() // throws RecognitionException [2]
        {
            try
            {
                int _type = DECIMAL;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:209:9: ( ( MINUS )? ( DIGIT )* '.' ( DIGIT )* )
                // /Users/marcel/Fixture.g:209:11: ( MINUS )? ( DIGIT )* '.' ( DIGIT )*
                {
                    // /Users/marcel/Fixture.g:209:11: ( MINUS )?
                    int alt9 = 2;
                    int LA9_0 = input.LA(1);

                    if ((LA9_0 == '-'))
                    {
                        alt9 = 1;
                    }
                    switch (alt9)
                    {
                        case 1:
                            // /Users/marcel/Fixture.g:209:12: MINUS
                            {
                                mMINUS();

                            }
                            break;

                    }

                    // /Users/marcel/Fixture.g:209:20: ( DIGIT )*
                    do
                    {
                        int alt10 = 2;
                        int LA10_0 = input.LA(1);

                        if (((LA10_0 >= '0' && LA10_0 <= '9')))
                        {
                            alt10 = 1;
                        }


                        switch (alt10)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:209:20: DIGIT
                                {
                                    mDIGIT();

                                }
                                break;

                            default:
                                goto loop10;
                        }
                    } while (true);

                loop10:
                    ;	// Stops C# compiler whining that label 'loop10' has no statements

                    Match('.');
                    // /Users/marcel/Fixture.g:209:31: ( DIGIT )*
                    do
                    {
                        int alt11 = 2;
                        int LA11_0 = input.LA(1);

                        if (((LA11_0 >= '0' && LA11_0 <= '9')))
                        {
                            alt11 = 1;
                        }


                        switch (alt11)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:209:31: DIGIT
                                {
                                    mDIGIT();

                                }
                                break;

                            default:
                                goto loop11;
                        }
                    } while (true);

                loop11:
                    ;	// Stops C# compiler whining that label 'loop11' has no statements


                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "DECIMAL"

        // $ANTLR start "DATE"
        public void mDATE() // throws RecognitionException [2]
        {
            try
            {
                int _type = DATE;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:211:6: ( DIGIT DIGIT DIGIT DIGIT '/' DIGIT DIGIT '/' DIGIT DIGIT ( ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )? )? )
                // /Users/marcel/Fixture.g:211:8: DIGIT DIGIT DIGIT DIGIT '/' DIGIT DIGIT '/' DIGIT DIGIT ( ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )? )?
                {
                    mDIGIT();
                    mDIGIT();
                    mDIGIT();
                    mDIGIT();
                    Match('/');
                    mDIGIT();
                    mDIGIT();
                    Match('/');
                    mDIGIT();
                    mDIGIT();
                    // /Users/marcel/Fixture.g:211:64: ( ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )? )?
                    int alt14 = 2;
                    int LA14_0 = input.LA(1);

                    if ((LA14_0 == ' '))
                    {
                        alt14 = 1;
                    }
                    switch (alt14)
                    {
                        case 1:
                            // /Users/marcel/Fixture.g:211:65: ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )?
                            {
                                Match(' ');
                                mDIGIT();
                                mDIGIT();
                                mCOLON();
                                mDIGIT();
                                mDIGIT();
                                // /Users/marcel/Fixture.g:211:99: ( COLON DIGIT DIGIT )?
                                int alt12 = 2;
                                int LA12_0 = input.LA(1);

                                if ((LA12_0 == ':'))
                                {
                                    alt12 = 1;
                                }
                                switch (alt12)
                                {
                                    case 1:
                                        // /Users/marcel/Fixture.g:211:100: COLON DIGIT DIGIT
                                        {
                                            mCOLON();
                                            mDIGIT();
                                            mDIGIT();

                                        }
                                        break;

                                }

                                // /Users/marcel/Fixture.g:211:120: ( 'AM' | 'PM' | 'am' | 'pm' )?
                                int alt13 = 5;
                                switch (input.LA(1))
                                {
                                    case 'A':
                                        {
                                            alt13 = 1;
                                        }
                                        break;
                                    case 'P':
                                        {
                                            alt13 = 2;
                                        }
                                        break;
                                    case 'a':
                                        {
                                            alt13 = 3;
                                        }
                                        break;
                                    case 'p':
                                        {
                                            alt13 = 4;
                                        }
                                        break;
                                }

                                switch (alt13)
                                {
                                    case 1:
                                        // /Users/marcel/Fixture.g:211:121: 'AM'
                                        {
                                            Match("AM");


                                        }
                                        break;
                                    case 2:
                                        // /Users/marcel/Fixture.g:211:126: 'PM'
                                        {
                                            Match("PM");


                                        }
                                        break;
                                    case 3:
                                        // /Users/marcel/Fixture.g:211:131: 'am'
                                        {
                                            Match("am");


                                        }
                                        break;
                                    case 4:
                                        // /Users/marcel/Fixture.g:211:136: 'pm'
                                        {
                                            Match("pm");


                                        }
                                        break;

                                }


                            }
                            break;

                    }


                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "DATE"

        // $ANTLR start "AT"
        public void mAT() // throws RecognitionException [2]
        {
            try
            {
                int _type = AT;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:213:4: ( '@' )
                // /Users/marcel/Fixture.g:213:6: '@'
                {
                    Match('@');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "AT"

        // $ANTLR start "HEX_VALUE"
        public void mHEX_VALUE() // throws RecognitionException [2]
        {
            try
            {
                int _type = HEX_VALUE;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:216:2: ( HEX_PREFIX ( DIGIT )* )
                // /Users/marcel/Fixture.g:216:4: HEX_PREFIX ( DIGIT )*
                {
                    mHEX_PREFIX();
                    // /Users/marcel/Fixture.g:216:15: ( DIGIT )*
                    do
                    {
                        int alt15 = 2;
                        int LA15_0 = input.LA(1);

                        if (((LA15_0 >= '0' && LA15_0 <= '9')))
                        {
                            alt15 = 1;
                        }


                        switch (alt15)
                        {
                            case 1:
                                // /Users/marcel/Fixture.g:216:15: DIGIT
                                {
                                    mDIGIT();

                                }
                                break;

                            default:
                                goto loop15;
                        }
                    } while (true);

                loop15:
                    ;	// Stops C# compiler whining that label 'loop15' has no statements


                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "HEX_VALUE"

        // $ANTLR start "COLON"
        public void mCOLON() // throws RecognitionException [2]
        {
            try
            {
                int _type = COLON;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:218:7: ( ':' )
                // /Users/marcel/Fixture.g:218:9: ':'
                {
                    Match(':');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "COLON"

        // $ANTLR start "SLASH"
        public void mSLASH() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:220:16: ( '/' )
                // /Users/marcel/Fixture.g:220:18: '/'
                {
                    Match('/');

                }

            }
            finally
            {
            }
        }
        // $ANTLR end "SLASH"

        // $ANTLR start "LBRACE"
        public void mLBRACE() // throws RecognitionException [2]
        {
            try
            {
                int _type = LBRACE;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:222:9: ( '{' )
                // /Users/marcel/Fixture.g:222:11: '{'
                {
                    Match('{');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "LBRACE"

        // $ANTLR start "RBRACE"
        public void mRBRACE() // throws RecognitionException [2]
        {
            try
            {
                int _type = RBRACE;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:224:9: ( '}' )
                // /Users/marcel/Fixture.g:224:11: '}'
                {
                    Match('}');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "RBRACE"

        // $ANTLR start "LBRACKET"
        public void mLBRACKET() // throws RecognitionException [2]
        {
            try
            {
                int _type = LBRACKET;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:226:9: ( '[' )
                // /Users/marcel/Fixture.g:226:11: '['
                {
                    Match('[');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "LBRACKET"

        // $ANTLR start "RBRACKET"
        public void mRBRACKET() // throws RecognitionException [2]
        {
            try
            {
                int _type = RBRACKET;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:228:9: ( ']' )
                // /Users/marcel/Fixture.g:228:11: ']'
                {
                    Match(']');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "RBRACKET"

        // $ANTLR start "EQUAL"
        public void mEQUAL() // throws RecognitionException [2]
        {
            try
            {
                int _type = EQUAL;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:230:7: ( '=' )
                // /Users/marcel/Fixture.g:230:9: '='
                {
                    Match('=');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "EQUAL"

        // $ANTLR start "COMMA"
        public void mCOMMA() // throws RecognitionException [2]
        {
            try
            {
                int _type = COMMA;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:232:7: ( ',' )
                // /Users/marcel/Fixture.g:232:9: ','
                {
                    Match(',');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "COMMA"

        // $ANTLR start "HASH"
        public void mHASH() // throws RecognitionException [2]
        {
            try
            {
                int _type = HASH;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:234:6: ( '#' )
                // /Users/marcel/Fixture.g:234:8: '#'
                {
                    Match('#');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "HASH"

        // $ANTLR start "PERCENT"
        public void mPERCENT() // throws RecognitionException [2]
        {
            try
            {
                int _type = PERCENT;
                int _channel = DEFAULT_TOKEN_CHANNEL;
                // /Users/marcel/Fixture.g:236:9: ( '%' )
                // /Users/marcel/Fixture.g:236:11: '%'
                {
                    Match('%');

                }

                state.type = _type;
                state.channel = _channel;
            }
            finally
            {
            }
        }
        // $ANTLR end "PERCENT"

        // $ANTLR start "MINUS"
        public void mMINUS() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:238:16: ( '-' )
                // /Users/marcel/Fixture.g:238:18: '-'
                {
                    Match('-');

                }

            }
            finally
            {
            }
        }
        // $ANTLR end "MINUS"

        // $ANTLR start "HEX_PREFIX"
        public void mHEX_PREFIX() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:241:2: ( '0' 'x' )
                // /Users/marcel/Fixture.g:241:4: '0' 'x'
                {
                    Match('0');
                    Match('x');

                }

            }
            finally
            {
            }
        }
        // $ANTLR end "HEX_PREFIX"

        // $ANTLR start "STRING_ESCAPE"
        public void mSTRING_ESCAPE() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:244:2: ( ESCAPE_CHAR ( 'n' | 'r' | 't' | '\"' | '\\\\' ) )
                // /Users/marcel/Fixture.g:244:4: ESCAPE_CHAR ( 'n' | 'r' | 't' | '\"' | '\\\\' )
                {
                    mESCAPE_CHAR();
                    if (input.LA(1) == '\"' || input.LA(1) == '\\' || input.LA(1) == 'n' || input.LA(1) == 'r' || input.LA(1) == 't')
                    {
                        input.Consume();

                    }
                    else
                    {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        Recover(mse);
                        throw mse;
                    }


                }

            }
            finally
            {
            }
        }
        // $ANTLR end "STRING_ESCAPE"

        // $ANTLR start "STRING2_ESCAPE"
        public void mSTRING2_ESCAPE() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:249:2: ( ESCAPE_CHAR ( 'n' | 'r' | 't' | '}' | '{' | '\\\\' ) )
                // /Users/marcel/Fixture.g:249:4: ESCAPE_CHAR ( 'n' | 'r' | 't' | '}' | '{' | '\\\\' )
                {
                    mESCAPE_CHAR();
                    if (input.LA(1) == '\\' || input.LA(1) == 'n' || input.LA(1) == 'r' || input.LA(1) == 't' || input.LA(1) == '{' || input.LA(1) == '}')
                    {
                        input.Consume();

                    }
                    else
                    {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        Recover(mse);
                        throw mse;
                    }


                }

            }
            finally
            {
            }
        }
        // $ANTLR end "STRING2_ESCAPE"

        // $ANTLR start "ESCAPE_CHAR"
        public void mESCAPE_CHAR() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:254:2: ( '\\\\' )
                // /Users/marcel/Fixture.g:255:3: '\\\\'
                {
                    Match('\\');

                }

            }
            finally
            {
            }
        }
        // $ANTLR end "ESCAPE_CHAR"

        // $ANTLR start "DOLLAR"
        public void mDOLLAR() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:259:2: ( '$' )
                // /Users/marcel/Fixture.g:259:4: '$'
                {
                    Match('$');

                }

            }
            finally
            {
            }
        }
        // $ANTLR end "DOLLAR"

        // $ANTLR start "LETTER"
        public void mLETTER() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:262:2: ( ( 'a' .. 'z' | 'A' .. 'Z' ) )
                // /Users/marcel/Fixture.g:262:5: ( 'a' .. 'z' | 'A' .. 'Z' )
                {
                    if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z') || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                    {
                        input.Consume();

                    }
                    else
                    {
                        MismatchedSetException mse = new MismatchedSetException(null, input);
                        Recover(mse);
                        throw mse;
                    }


                }

            }
            finally
            {
            }
        }
        // $ANTLR end "LETTER"

        // $ANTLR start "DIGIT"
        public void mDIGIT() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:265:2: ( '0' .. '9' )
                // /Users/marcel/Fixture.g:265:4: '0' .. '9'
                {
                    MatchRange('0', '9');

                }

            }
            finally
            {
            }
        }
        // $ANTLR end "DIGIT"

        // $ANTLR start "SYMBOL"
        public void mSYMBOL() // throws RecognitionException [2]
        {
            try
            {
                // /Users/marcel/Fixture.g:268:2: ( '_' )
                // /Users/marcel/Fixture.g:268:4: '_'
                {
                    Match('_');

                }

            }
            finally
            {
            }
        }
        // $ANTLR end "SYMBOL"

        override public void mTokens() // throws RecognitionException 
        {
            // /Users/marcel/Fixture.g:1:8: ( REFERENCE | IDENT | WHITESPACE | COMMENT | STRING | STRING2 | INTEGER | DECIMAL | DATE | AT | HEX_VALUE | COLON | LBRACE | RBRACE | LBRACKET | RBRACKET | EQUAL | COMMA | HASH | PERCENT )
            int alt16 = 20;
            alt16 = dfa16.Predict(input);
            switch (alt16)
            {
                case 1:
                    // /Users/marcel/Fixture.g:1:10: REFERENCE
                    {
                        mREFERENCE();

                    }
                    break;
                case 2:
                    // /Users/marcel/Fixture.g:1:20: IDENT
                    {
                        mIDENT();

                    }
                    break;
                case 3:
                    // /Users/marcel/Fixture.g:1:26: WHITESPACE
                    {
                        mWHITESPACE();

                    }
                    break;
                case 4:
                    // /Users/marcel/Fixture.g:1:37: COMMENT
                    {
                        mCOMMENT();

                    }
                    break;
                case 5:
                    // /Users/marcel/Fixture.g:1:45: STRING
                    {
                        mSTRING();

                    }
                    break;
                case 6:
                    // /Users/marcel/Fixture.g:1:52: STRING2
                    {
                        mSTRING2();

                    }
                    break;
                case 7:
                    // /Users/marcel/Fixture.g:1:60: INTEGER
                    {
                        mINTEGER();

                    }
                    break;
                case 8:
                    // /Users/marcel/Fixture.g:1:68: DECIMAL
                    {
                        mDECIMAL();

                    }
                    break;
                case 9:
                    // /Users/marcel/Fixture.g:1:76: DATE
                    {
                        mDATE();

                    }
                    break;
                case 10:
                    // /Users/marcel/Fixture.g:1:81: AT
                    {
                        mAT();

                    }
                    break;
                case 11:
                    // /Users/marcel/Fixture.g:1:84: HEX_VALUE
                    {
                        mHEX_VALUE();

                    }
                    break;
                case 12:
                    // /Users/marcel/Fixture.g:1:94: COLON
                    {
                        mCOLON();

                    }
                    break;
                case 13:
                    // /Users/marcel/Fixture.g:1:100: LBRACE
                    {
                        mLBRACE();

                    }
                    break;
                case 14:
                    // /Users/marcel/Fixture.g:1:107: RBRACE
                    {
                        mRBRACE();

                    }
                    break;
                case 15:
                    // /Users/marcel/Fixture.g:1:114: LBRACKET
                    {
                        mLBRACKET();

                    }
                    break;
                case 16:
                    // /Users/marcel/Fixture.g:1:123: RBRACKET
                    {
                        mRBRACKET();

                    }
                    break;
                case 17:
                    // /Users/marcel/Fixture.g:1:132: EQUAL
                    {
                        mEQUAL();

                    }
                    break;
                case 18:
                    // /Users/marcel/Fixture.g:1:138: COMMA
                    {
                        mCOMMA();

                    }
                    break;
                case 19:
                    // /Users/marcel/Fixture.g:1:144: HASH
                    {
                        mHASH();

                    }
                    break;
                case 20:
                    // /Users/marcel/Fixture.g:1:149: PERCENT
                    {
                        mPERCENT();

                    }
                    break;

            }

        }


        protected DFA16 dfa16;
        private void InitializeCyclicDFAs()
        {
            this.dfa16 = new DFA16(this);
        }

        const string DFA16_eotS =
            "\x01\x09\x05\uffff\x01\x15\x02\x09\x02\uffff\x01\x09\x0b\uffff\x01" +
            "\x09\x01\uffff\x03\x09\x01\uffff";
        const string DFA16_eofS =
            "\x1d\uffff";
        const string DFA16_minS =
            "\x01\x09\x05\uffff\x01\x7b\x02\x2e\x02\uffff\x01\x2e\x0b\uffff\x01" +
            "\x2e\x01\uffff\x03\x2e\x01\uffff";
        const string DFA16_maxS =
            "\x01\x7d\x05\uffff\x01\x7b\x01\x39\x01\x78\x02\uffff\x01\x39\x0b" +
            "\uffff\x01\x39\x01\uffff\x03\x39\x01\uffff";
        const string DFA16_acceptS =
            "\x01\uffff\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x03\uffff\x01" +
            "\x07\x01\x08\x01\uffff\x01\x0c\x01\x0d\x01\x0e\x01\x0f\x01\x10\x01" +
            "\x11\x01\x12\x01\x13\x01\x14\x01\x0a\x01\x06\x01\uffff\x01\x0b\x03" +
            "\uffff\x01\x09";
        const string DFA16_specialS =
            "\x1d\uffff}>";
        static readonly string[] DFA16_transitionS = {
            "\x02\x03\x01\uffff\x02\x03\x12\uffff\x01\x03\x01\uffff\x01\x05"+
            "\x01\x13\x01\x01\x01\x14\x06\uffff\x01\x12\x01\x07\x01\x0a\x01"+
            "\x04\x01\x08\x09\x0b\x01\x0c\x02\uffff\x01\x11\x02\uffff\x01"+
            "\x06\x1a\x02\x01\x0f\x01\uffff\x01\x10\x01\uffff\x01\x02\x01"+
            "\uffff\x1a\x02\x01\x0d\x01\uffff\x01\x0e",
            "",
            "",
            "",
            "",
            "",
            "\x01\x16",
            "\x01\x0a\x01\uffff\x0a\x17",
            "\x01\x0a\x01\uffff\x0a\x19\x3e\uffff\x01\x18",
            "",
            "",
            "\x01\x0a\x01\uffff\x0a\x19",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\x01\x0a\x01\uffff\x0a\x17",
            "",
            "\x01\x0a\x01\uffff\x0a\x1a",
            "\x01\x0a\x01\uffff\x0a\x1b",
            "\x01\x0a\x01\x1c\x0a\x17",
            ""
    };

        static readonly short[] DFA16_eot = DFA.UnpackEncodedString(DFA16_eotS);
        static readonly short[] DFA16_eof = DFA.UnpackEncodedString(DFA16_eofS);
        static readonly char[] DFA16_min = DFA.UnpackEncodedStringToUnsignedChars(DFA16_minS);
        static readonly char[] DFA16_max = DFA.UnpackEncodedStringToUnsignedChars(DFA16_maxS);
        static readonly short[] DFA16_accept = DFA.UnpackEncodedString(DFA16_acceptS);
        static readonly short[] DFA16_special = DFA.UnpackEncodedString(DFA16_specialS);
        static readonly short[][] DFA16_transition = DFA.UnpackEncodedStringArray(DFA16_transitionS);

        protected class DFA16 : DFA
        {
            public DFA16(BaseRecognizer recognizer)
            {
                this.recognizer = recognizer;
                this.decisionNumber = 16;
                this.eot = DFA16_eot;
                this.eof = DFA16_eof;
                this.min = DFA16_min;
                this.max = DFA16_max;
                this.accept = DFA16_accept;
                this.special = DFA16_special;
                this.transition = DFA16_transition;

            }

            override public string Description
            {
                get { return "1:1: Tokens : ( REFERENCE | IDENT | WHITESPACE | COMMENT | STRING | STRING2 | INTEGER | DECIMAL | DATE | AT | HEX_VALUE | COLON | LBRACE | RBRACE | LBRACKET | RBRACKET | EQUAL | COMMA | HASH | PERCENT );"; }
            }

        }



    }


}
